<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
                "http://www.w3.org/TR/REC-html40/loose.dtd">
<html>
<head>
  <title>Description of v_tilefigs</title>
  <meta name="keywords" content="v_tilefigs">
  <meta name="description" content="V_TILEFIGS tile current figures">
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  <meta name="generator" content="m2html &copy; 2003 Guillaume Flandin">
  <meta name="robots" content="index, follow">
  <link type="text/css" rel="stylesheet" href="../m2html.css">
</head>
<body>
<a name="_top"></a>
<div><a href="../index.html">Home</a> &gt;  <a href="index.html">v_mfiles</a> &gt; v_tilefigs.m</div>

<!--<table width="100%"><tr><td align="left"><a href="../index.html"><img alt="<" border="0" src="../left.png">&nbsp;Master index</a></td>
<td align="right"><a href="index.html">Index for v_mfiles&nbsp;<img alt=">" border="0" src="../right.png"></a></td></tr></table>-->

<h1>v_tilefigs
</h1>

<h2><a name="_name"></a>PURPOSE <a href="#_top"><img alt="^" border="0" src="../up.png"></a></h2>
<div class="box"><strong>V_TILEFIGS tile current figures</strong></div>

<h2><a name="_synopsis"></a>SYNOPSIS <a href="#_top"><img alt="^" border="0" src="../up.png"></a></h2>
<div class="box"><strong>function v_tilefigs(pos) </strong></div>

<h2><a name="_description"></a>DESCRIPTION <a href="#_top"><img alt="^" border="0" src="../up.png"></a></h2>
<div class="fragment"><pre class="comment">V_TILEFIGS tile current figures
 Inputs: pos(1,4) Virtual screen: [xmin ymin width height] either in
                  pixels &gt;=1 or normalized in the range 0 to 1

 Possible future options:
   (1) define screen region to place tiles
   (2) include/exclude window titles (except optionally first row)
   (3) preserve sizes and/or aspect ratios
   (4) place disparate sizes in the most efficient way
   (5) cascade instead of tile
   (6) superimpose instead of tile
   (7) cope with dual screens
   (8) should check that the units have not been changed from &quot;pixels&quot;
   (9) cope with virtual screen that has a different aspect ratio</pre></div>

<!-- crossreference -->
<h2><a name="_cross"></a>CROSS-REFERENCE INFORMATION <a href="#_top"><img alt="^" border="0" src="../up.png"></a></h2>
This function calls:
<ul style="list-style-image:url(../matlabicon.gif)">
</ul>
This function is called by:
<ul style="list-style-image:url(../matlabicon.gif)">
</ul>
<!-- crossreference -->


<h2><a name="_source"></a>SOURCE CODE <a href="#_top"><img alt="^" border="0" src="../up.png"></a></h2>
<div class="fragment"><pre>0001 <a name="_sub0" href="#_subfunctions" class="code">function v_tilefigs(pos)</a>
0002 <span class="comment">%V_TILEFIGS tile current figures</span>
0003 <span class="comment">% Inputs: pos(1,4) Virtual screen: [xmin ymin width height] either in</span>
0004 <span class="comment">%                  pixels &gt;=1 or normalized in the range 0 to 1</span>
0005 <span class="comment">%</span>
0006 <span class="comment">% Possible future options:</span>
0007 <span class="comment">%   (1) define screen region to place tiles</span>
0008 <span class="comment">%   (2) include/exclude window titles (except optionally first row)</span>
0009 <span class="comment">%   (3) preserve sizes and/or aspect ratios</span>
0010 <span class="comment">%   (4) place disparate sizes in the most efficient way</span>
0011 <span class="comment">%   (5) cascade instead of tile</span>
0012 <span class="comment">%   (6) superimpose instead of tile</span>
0013 <span class="comment">%   (7) cope with dual screens</span>
0014 <span class="comment">%   (8) should check that the units have not been changed from &quot;pixels&quot;</span>
0015 <span class="comment">%   (9) cope with virtual screen that has a different aspect ratio</span>
0016 
0017 <span class="comment">%      Copyright (C) Mike Brookes 2014</span>
0018 <span class="comment">%      Version: $Id: v_tilefigs.m 10865 2018-09-21 17:22:45Z dmb $</span>
0019 <span class="comment">%</span>
0020 <span class="comment">%   VOICEBOX is a MATLAB toolbox for speech processing.</span>
0021 <span class="comment">%   Home page: http://www.ee.ic.ac.uk/hp/staff/dmb/voicebox/voicebox.html</span>
0022 <span class="comment">%</span>
0023 <span class="comment">%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%</span>
0024 <span class="comment">%   This program is free software; you can redistribute it and/or modify</span>
0025 <span class="comment">%   it under the terms of the GNU General Public License as published by</span>
0026 <span class="comment">%   the Free Software Foundation; either version 2 of the License, or</span>
0027 <span class="comment">%   (at your option) any later version.</span>
0028 <span class="comment">%</span>
0029 <span class="comment">%   This program is distributed in the hope that it will be useful,</span>
0030 <span class="comment">%   but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
0031 <span class="comment">%   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</span>
0032 <span class="comment">%   GNU General Public License for more details.</span>
0033 <span class="comment">%</span>
0034 <span class="comment">%   You can obtain a copy of the GNU General Public License from</span>
0035 <span class="comment">%   http://www.gnu.org/copyleft/gpl.html or by writing to</span>
0036 <span class="comment">%   Free Software Foundation, Inc.,675 Mass Ave, Cambridge, MA 02139, USA.</span>
0037 <span class="comment">%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%</span>
0038 
0039 starth=35; <span class="comment">% height for start bar</span>
0040 tith=78; <span class="comment">% height for window title</span>
0041 winb=8; <span class="comment">% width of window border</span>
0042 figl=get(0,<span class="string">'Children'</span>);
0043 nf=length(figl);
0044 <span class="keyword">if</span> isnumeric(figl)  <span class="comment">% old versions of MATLAB have numeric figure handles</span>
0045     figl=sort(figl);
0046 <span class="keyword">else</span>
0047     fign=zeros(1,nf);
0048     <span class="keyword">for</span> i=1:nf
0049         fign(i)=figl(i).Number;
0050     <span class="keyword">end</span>
0051     [fign,figj]=sort(fign);
0052     figl=figl(figj);
0053 <span class="keyword">end</span>
0054 scr=get(0,<span class="string">'Screensize'</span>); <span class="comment">% [xmin xmax width height]</span>
0055 <span class="keyword">if</span> nargin==0 || isempty(pos)
0056     scr=scr+starth*[0 1 0 -1]; <span class="comment">% leave space for the start bar at the bottom</span>
0057 <span class="keyword">else</span>
0058     <span class="keyword">if</span> all(pos&lt;2) <span class="comment">% pos uses normalized units</span>
0059         pos=[round(scr(1:2)+pos(1:2).*scr(3:4)) round(pos(3:4).*scr(3:4))]; <span class="comment">% convert to pixels</span>
0060     <span class="keyword">end</span>
0061     scr=[max(pos(1:2),1) min(pos(3:4),scr(3:4)+scr(1:2)-max(pos(1:2),1))]; <span class="comment">% clip to actual screen</span>
0062 <span class="keyword">end</span>
0063 nfh=1:nf; <span class="comment">% possible number of columns</span>
0064 nfv=ceil(nf./nfh); <span class="comment">% corresponding number of rows</span>
0065 asp=(floor(scr(3)./nfh)-2*winb)./(floor(scr(4)./nfv)-2*winb-tith); <span class="comment">% corresponding aspect ratios</span>
0066 [aa,ia]=min(abs(asp-4/3)); <span class="comment">% target aspect ratio is 4/3</span>
0067 nfv=nfv(ia);
0068 nfh=ceil(nf/nfv);
0069 hpix=floor(scr(3)/nfh); <span class="comment">% horizontal pixels per graph available incl border</span>
0070 vpix=floor(scr(4)/nfv); <span class="comment">% vertical pixels per graph available incl border</span>
0071 <span class="comment">% fprintf('scr=[%d %d %d %d], [hpix vpix]=[%d %d]\n',scr,hpix,vpix);</span>
0072 <span class="keyword">for</span> i=nf:-1:1
0073     figure(figl(i));
0074     row=1+floor((i-1)/nfh); <span class="comment">% row goes nvf:-1:1</span>
0075     col=i-(row-1)*nfh;      <span class="comment">% within each row col goes nfh:-1:1 except for last row</span>
0076 <span class="comment">% fprintf('Fig %d=(%d,%d): [xmin ymin width height] = [%d %d %d %d]\n',i,row,col,[hpix*(col-1)+1+winb scr(4)-vpix*row+1+winb hpix-2*winb vpix-2*winb-tith]);</span>
0077     set(figl(i),<span class="string">'position'</span>,[hpix*(col-1)+1+winb scr(4)+scr(2)-vpix*row+winb hpix-2*winb vpix-2*winb-tith]);
0078 <span class="keyword">end</span></pre></div>
<hr><address>Generated by <strong><a href="http://www.artefact.tk/software/matlab/m2html/">m2html</a></strong> &copy; 2003</address>
</body>
</html>